8 research outputs found

    Securing Software in the Presence of Third-Party Modules

    Get PDF
    Modular programming is a key concept in software development where the program consists of code modules that are designed and implemented independently. This approach accelerates the development process and enhances scalability of the final product. Modules, however, are often written by third parties, aggravating security concerns such as stealing confidential information, tampering with sensitive data, and executing malicious code.Trigger-Action Platforms (TAPs) are concrete examples of employing modular programming. Any user can develop TAP applications by connecting trigger and action services, and publish them on public repositories. In the presence of malicious application makers, users cannot trust applications written by third parties, which can threaten users’ and platform’s security. We present SandTrap, a novel runtime monitor for JavaScript that can be used to securely integrate third-party applications. SandTrap enforces fine-grained access control policies at the levels of module, API, value, and context. We instantiate SandTrap to IFTTT, Zapier, and Node-RED, three popular JavaScript-driven TAPs, and illustrate how it enforces various policies on a set of benchmarks while incurring a tolerable runtime overhead. We also prove soundness and transparency of the monitoring framework on an essential model of Node-RED. Furthermore, nontransitive policies have been recently introduced as a natural fit for coarse-grained information-flow control where labels are specified at the level of modules. The flow relation does not need to be transitive, resulting in nonstandard noninterference and enforcement mechanism. We develop a lattice encoding to prove that nontransitive policies can be reduced to classical transitive policies. We also devise a lightweight program transformation that leverages standard flow-sensitive information-flow analyses to enforce nontransitive policies more permissively

    Nontransitive Policies Transpiled

    Get PDF
    Nontransitive Noninterference (NTNI) and Nontransitive Types (NTT) are a new security condition and enforcement for policies which, in contrast to Denning\u27s classical lattice model, assume no transitivity of the underlying flow relation. Nontransitive security policies are a natural fit for coarse-grained information-flow control where labels are specified at module rather than variable level of granularity.While the nontransitive and transitive policies pursue different goals and have different intuitions, this paper demonstrates that nontransitive noninterference can in fact be reduced to classical transitive noninterference. We develop a lattice encoding that establishes a precise relation between NTNI and classical noninterference. Our results make it possible to clearly position the new NTNI characterization with respect to the large body of work on noninterference. Further, we devise a lightweight program transformation that leverages standard flow-sensitive information-flow analyses to enforce nontransitive policies. We demonstrate several immediate benefits of our approach, both theoretical and practical. First, we improve the permissiveness over (while retaining the soundness of) the nonstandard NTT enforcement. Second, our results naturally generalize to a language with intermediate inputs and outputs. Finally, we demonstrate the practical benefits by utilizing state-of-the-art flow-sensitive tool JOANA to enforce nontransitive policies for Java programs

    SandTrap: Securing JavaScript-driven Trigger-Action Platforms

    Get PDF
    Trigger-Action Platforms (TAPs) seamlessly connect a wide variety of otherwise unconnected devices and services, ranging from IoT devices to cloud services and social networks. TAPs raise critical security and privacy concerns because a TAP is effectively a “person-in-the-middle” between trigger and action services. Third-party code, routinely deployed as “apps” on TAPs, further exacerbates these concerns. This paper focuses on JavaScript-driven TAPs. We show that the popular IFTTT and Zapier platforms and an open-source alternative Node-RED are susceptible to attacks ranging from exfiltrating data from unsuspecting users to taking over the entire platform. We report on the changes by the platforms in response to our findings and present an empirical study to assess the implications for Node-RED. Motivated by the need for a secure yet flexible way to integrate third-party JavaScript apps, we propose SandTrap, a novel JavaScript monitor that securely combines the Node.js vm module with fully structural proxy-based two-sided membranes to enforce fine-grained access control policies. To aid developers, SandTrap includes a policy generation mechanism. We instantiate SandTrap to IFTTT, Zapier, and Node-RED and illustrate on a set of benchmarks how SandTrap enforces a variety of policies while incurring a tolerable runtime overhead

    Securing Node-RED Applications

    Get PDF
    Trigger-Action Platforms (TAPs) play a vital role in fulfilling the promise of the Internet of Things (IoT) by seamlessly connecting otherwise unconnected devices and services. While enabling novel and exciting applications across a variety of services, security and privacy issues must be taken into consideration because TAPs essentially act as persons-in-the-middle between trigger and action services. The issue is further aggravated since the triggers and actions on TAPs are mostly provided by third parties extending the trust beyond the platform providers. Node-RED, an open-source JavaScript-driven TAP, provides the opportunity for users to effortlessly employ and link nodes via a graphical user interface. Being built upon Node.js, third-party developers can extend the platform’s functionality through publishing nodes and their wirings, known as flows. This paper proposes an essential model for Node-RED, suitable to reason about nodes and flows, be they benign, vulnerable, or malicious. We expand on attacks discovered in recent work, ranging from exfiltrating data from unsuspecting users to taking over the entire platform by misusing sensitive APIs within nodes. We present a formalization of a runtime monitoring framework for a core language that soundly and transparently enforces fine-grained allowlist policies at module-, API-, value-, and context-level. We introduce the monitoring framework for Node-RED that isolates nodes while permitting them to communicate via well-defined API calls complying with the policy specified for each node

    Prevalence and Correlates of Psychiatric Disorders in a National Survey of Iranian Children and Adolescents

    Get PDF
    Objective: Considering the impact of rapid sociocultural, political, and economical changes on societies and families, population-based surveys of mental disorders in different communities are needed to describe the magnitude of mental health problems and their disabling effects at the individual, familial, and societal levels. Method: A population-based cross sectional survey (IRCAP project) of 30 532 children and adolescents between 6 and 18 years was conducted in all provinces of Iran using a multistage cluster sampling method. Data were collected by 250 clinical psychologists trained to use the validated Persian version of the semi-structured diagnostic interview Kiddie-Schedule for Affective Disorders and Schizophrenia-PL (K-SADS-PL). Results: In this national epidemiological survey, 6209 out of 30 532 (22.31%) were diagnosed with at least one psychiatric disorder. The anxiety disorders (14.13%) and behavioral disorders (8.3%) had the highest prevalence, while eating disorders (0.13%) and psychotic symptoms (0.26%) had the lowest. The prevalence of psychiatric disorders was significantly lower in girls (OR = 0.85; 95% CI: 0.80-0.90), in those living in the rural area (OR = 0.80; 95% CI: 0.73-0.87), in those aged 15-18 years (OR = 0.92; 95% CI: 0.86-0.99), as well as that was significantly higher in those who had a parent suffering from mental disorders (OR = 1.96; 95% CI: 1.63-2.36 for mother and OR = 1.33; 95% CI: 1.07-1.66 for father) or physical illness (OR = 1.26; 95% CI: 1.17-1.35 for mother and OR = 1.19; 95% CI: 1.10-1.28 for father). Conclusion: About one fifth of Iranian children and adolescents suffer from at least one psychiatric disorder. Therefore, we should give a greater priority to promoting mental health and public health, provide more accessible services and trainings, and reduce barriers to accessing existing services
    corecore